﻿using System.Collections.Generic;

namespace Estimate
{
    class FieldDescription
    {
        readonly List<FiledDescription> values = new List<FiledDescription>();

        public FieldDescription()
        {
            values.Add(new FiledDescription("login", "користувач"));
            values.Add(new FiledDescription("password", "пароль"));
            values.Add(new FiledDescription("UserRule", "група"));

            values.Add(new FiledDescription("FirmName", "назва фірми"));
            values.Add(new FiledDescription("FirmAddress", "адреса"));
            values.Add(new FiledDescription("FirmJuridicalAddress", "юридична адреса"));
            values.Add(new FiledDescription("FirmAccount", "розрахунковий рахунок"));
            values.Add(new FiledDescription("FirmOwnerITN", "ІПН"));
            values.Add(new FiledDescription("FirmCertNumber", "№ свідоцтва "));
            values.Add(new FiledDescription("FirmTaxCode", "ЄДРПОУ"));
            values.Add(new FiledDescription("FirmPhone", "телефон"));
            values.Add(new FiledDescription("FirmEmail", "ел. адреса"));
            values.Add(new FiledDescription("FirmType", "тип фірми"));
            values.Add(new FiledDescription("Accountant", "бухгалтер"));
            values.Add(new FiledDescription("Director", "директор"));


            values.Add(new FiledDescription("RateName", "назва"));
            values.Add(new FiledDescription("RateValue", "ставка"));

            values.Add(new FiledDescription("InvoiceIncomeNumber", "номер накладної"));
            values.Add(new FiledDescription("DateCreate", "дата створення"));
            values.Add(new FiledDescription("Firm", "фірма"));
            values.Add(new FiledDescription("StoreHouse", "склад"));
            values.Add(new FiledDescription("Vat", "ПДВ"));

            values.Add(new FiledDescription("ProductCode", "код"));
            values.Add(new FiledDescription("ProductName", "назва"));
            values.Add(new FiledDescription("UnitName", "од.вим."));


            values.Add(new FiledDescription("InvoiceRelocationNumber", "номер накладної"));
            values.Add(new FiledDescription("StoreHouseFromID", "із складу"));
            values.Add(new FiledDescription("StoreHouseToID", "на склад"));

            values.Add(new FiledDescription("Unit", "од.вим."));
            values.Add(new FiledDescription("Count", "к-ть"));
            values.Add(new FiledDescription("Price", "ціна"));
            values.Add(new FiledDescription("PriceTotal", "сума"));

            values.Add(new FiledDescription("Cnt", "к-ть"));
            values.Add(new FiledDescription("Status", "стан"));
            values.Add(new FiledDescription("DateSet", "дата"));

            values.Add(new FiledDescription("WorkCode", "шифр"));
            values.Add(new FiledDescription("WorkName", "назва"));

            values.Add(new FiledDescription("ContractNumber", "номер контракту"));
            values.Add(new FiledDescription("ContractDate", "дата контракту"));
            values.Add(new FiledDescription("IsClose", "закритий"));

            values.Add(new FiledDescription("InvoiceWriteoffNumber", "номер акту"));
            values.Add(new FiledDescription("ProductUnitName", "од.вим"));

            values.Add(new FiledDescription("ObjectName", "Обєкт"));
            values.Add(new FiledDescription("Sum", "сума"));

            values.Add(new FiledDescription("InvoiceOutcomeNumber", "номер рахунку"));
            values.Add(new FiledDescription("budgetCnt", "залишок"));

            values.Add(new FiledDescription("rate", "видаткова ціна"));
            values.Add(new FiledDescription("objectshortname", "коротка назва"));

            values.Add(new FiledDescription("ObjectWorkCategoryName", "види робіт"));

            values.Add(new FiledDescription("PaymentDate", "дата оплати"));
            values.Add(new FiledDescription("PaymentSum", "сума оплати"));
            values.Add(new FiledDescription("BudgetCount", "кошторисна к-ть"));
            
        }
        #region code
        public string GetDescription(string field)
        {
            foreach (var filedDescription in values)
                if (filedDescription.Field.ToUpper() == field.ToUpper()) return filedDescription.Description;
            return field;
        }


        struct FiledDescription
        {
            public FiledDescription(string field, string description)
            {
                this.description = description;
                this.field = field;
            }

            readonly string field;
            public string Field { get { return field; } }

            readonly string description;
            public string Description
            { get { return description; } }
        }
        #endregion
    }
}
